﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Configuration;
using System.Globalization;
using System.Threading;
using LogicaNegocio = Caduceu.Estudos.LogicaNegocio;
using Entidades = Caduceu.Estudos.Entidades;
using Caduceu.Estudos;

namespace TestConsole
{
    class Program
    {
        static void LoadCulture()
        {
            string currentCulture = ConfigurationManager.AppSettings["cultureToUse"];
            if (string.IsNullOrEmpty(currentCulture))
            {
                throw new Exception("Culture To Use hasn't been defined");
            }
            CultureInfo ci = new CultureInfo(currentCulture);
            Thread.CurrentThread.CurrentUICulture = ci;
        }
        
        static void Main(string[] args)
        {
            try
            {
                LoadCulture();

                //TestarRotinaLancamentosContabeis();
                TestarRotinaFechamentoContabil();
            }
            catch (Exception ex)
            {
                Console.Error.WriteLine(ex);
            }

            Console.ReadLine();
        }

        protected static void TestarRotinaLancamentosContabeis()
        {
            LogicaNegocio.ContabilController controller = new LogicaNegocio.ContabilController();
            Entidades.Lancamento lancamento;
            IList lancamentos = new List<Entidades.Lancamento>();

            lancamento = new Entidades.Lancamento();
            lancamento.NumeroContaCredito = "1.1";
            lancamento.NumeroContaDebito = "2";
            lancamento.Valor = 15468.23001M;

            lancamentos.Add(lancamento);
            //controller.RegistrarLancamento(lancamento);

            lancamento = new Entidades.Lancamento();
            lancamento.NumeroContaCredito = "1.1";
            lancamento.NumeroContaDebito = "2";
            lancamento.Valor = 1249.12M;

            lancamentos.Add(lancamento);
            //controller.RegistrarLancamento(lancamento);

            controller.RegistrarLancamentos(lancamentos);
        }

        protected static void TestarRotinaFechamentoContabil()
        {
            LogicaNegocio.ContabilController controller = new LogicaNegocio.ContabilController();
            controller.FecharContabil();
        }
    }
}
